<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2019/3/29 0029
 * Time: 00:33
 */
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/9/1
 * Time: 16:39
 * from  http://www.webkaka.com/tutorial/php/2012/103026/
 */
//php实现限制文件下载速度的代码实例
//from http://www.webkaka.com/tutorial/php/2012/103026/
//有时候你会出于某种目的而要求把下载文件的速度放慢一些，例如你想实现文件下载进度条功能。限制下载速度最大的好处是节省带宽，避免瞬时流量过大而造成网络堵塞。本文将通过php代码来实现限制文件的下载速度。
$load_file = './aa.rar';// 将发送到客户端的本地文件
$down_file_name = time() . '.zip'; //// 文件名
$download_rate = 120.5;// 设置下载速率(=> 20,5 kb/s)
if (file_exists($load_file) && is_file($load_file)) {
    //发送header
    header('Cache-control:private');
    header('Content-Type: application/octet-stream');
    header('Content-Length: ' . filesize($load_file));
    header('Content-Disposition: filename=' . $down_file_name);
    //flush 内容
    flush();
    //打开文件流
    $file = fopen($load_file, 'r');
    while (!feof($file)) {
        //发送当前部分文给浏览器
        print fread($file, round($download_rate * 1024));
        // flush 内容输出到浏览器端
        flush();
        //终端1秒后继续
        sleep(1);

    }
    //关闭文件流
    fclose($file);
} else {
    echo '文件不存在';
}